perm filename TEXEXT.DIF[TEX,DEK] blob
sn#500225 filedate 1980-03-28 generic text, type T, neo UTF8
1) TEXEXT.SAI[TEX,DEK] and 2) TEXEXT.SAV[TEX,DEK] 3-28-80 21:49 pages 1,1
**** File 1) TEXEXT.SAI[TEX,DEK]/1P/1L
1) entry; begin comment The extension module of TEX.
1) In order to extend TEX without changing other modules, you can supply procedures for the "hooks" internal to this module. Most of these procedures are called when TEX's routines come up with a case that is ordinarily undefined (usually when processing a node of type "whatsit").
1) Whatsit nodes can have variable length. The value field of the first word of a whatsit should identify what kind of whatsit it is. In the present extension module the types used are:
1) 0 used for \send
1) IFPARC
1) 1 for elementary operations of color printing (by L. Guibas) ENDPARC
1) The "send" routines are based on code developed by Jim Boyce. They appear in this module because they were the first trial extensions to TEX, although they are now considered to be "primitives";
1) require "TEXHDR.SAI" source_file;
**** File 2) TEXEXT.SAV[TEX,DEK]/1P/1L
2) COMMENT ⊗ VALID 00010 PAGES
2) C REC PAGE DESCRIPTION
2) C00001 00001
2) C00003 00002 entry begin comment The extension module of TEX.
2) C00008 00003 internal procedure initext # do this when initializing TEX
2) C00009 00004 internal procedure extop # do this when "\x" sensed in user input
2) C00011 00005 internal procedure dumpext(integer p) # do this in procedure dumpnodelist
2) C00012 00006 internal procedure destroyext(integer p) # do this in procedure dsnodelist
2) C00013 00007 internal integer procedure copyext(integer p) # do this in procedure boxcopy
2) C00014 00008 internal procedure hpackext(integer p) # do this in procedure hpackage
2) C00015 00009 In houtext, x and y are coordinates of the reference point,
2) C00017 00010 internal procedure finishext # do this just before terminating TEX
2) C00018 ENDMK
2) C⊗;
2) entry; begin comment The extension module of TEX.
2) In order to extend TEX without changing other modules, you can supply
2) procedures for the "hooks" internal to this module. Most of these procedures
2) are called when TEX's routines come up with a case that is ordinarily
2) undefined (usually when processing a node of type "whatsit").
2) Whatsit nodes can have variable length. The value field of the first word
2) of a whatsit should identify what kind of whatsit it is. In the
2) present extension module the types used are:
2) 0 used for \send
2) IFPARC 1 for elementary operations of color printing (by L. Guibas) ENDPARC
2) The "send" routines are based on code developed by Jim Boyce. They appear in
2) this module because they were the first trial extensions to TEX, although
2) they are now considered to be "primitives";
2) require "TEXHDR.SAI" source_file;
***************
**** File 1) TEXEXT.SAI[TEX,DEK]/1P/20L
1) comment Warning: these definitions shared among TEXPRS and TEXHDR!!;
1) internal boolean color;
1) internal integer curbrightness, curhue, cursaturation;
1) integer oldbrightness, oldhue, oldsaturation;
**** File 2) TEXEXT.SAV[TEX,DEK]/2P/25L
2) internal boolean color;
1) TEXEXT.SAI[TEX,DEK] and 2) TEXEXT.SAV[TEX,DEK] 3-28-80 21:49 pages 1,2
2) integer curbrightness, curhue, cursaturation;
2) integer oldbrightness, oldhue, oldsaturation;
***************
**** File 1) TEXEXT.SAI[TEX,DEK]/3P/3L
1) ifc PARC thenc integer octal, i, p;
1) do getnctok until curcmd ≠ spacer; backinput;
**** File 2) TEXEXT.SAV[TEX,DEK]/4P/3L
2) IFPARC integer octal, i, p;
2) do getnctok until curcmd ≠ spacer; backinput;
***************
**** File 1) TEXEXT.SAI[TEX,DEK]/3P/33L
1) else error("Unrecognized extension to TEX");
1) mem[p+1]←mem[p+1]+(octal land '377);
**** File 2) TEXEXT.SAV[TEX,DEK]/4P/33L
2) else go to unknown;
2) mem[p+1]←mem[p+1]+(octal land '377);
***************
**** File 1) TEXEXT.SAI[TEX,DEK]/3P/37L
1) elsec
1) unknown: error("Unrecognized extension to TEX");
1) endc
1) end;
**** File 2) TEXEXT.SAV[TEX,DEK]/4P/37L
2) ENDPARC
2) unknown: error("Unrecognized extension to TEX");
2) end;
***************